home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Utilities / Converters / Convert_FONT / Source / shared.subproj / RCS / File.rtf,v < prev    next >
Text File  |  1995-06-12  |  18KB  |  808 lines

  1. head     1.5;
  2. branch   ;
  3. access   ;
  4. symbols  beta10:1.4;
  5. locks    death:1.5; strict;
  6. comment  @@;
  7.  
  8.  
  9. 1.5
  10. date     93.04.04.23.44.30;  author death;  state Exp;
  11. branches ;
  12. next     1.4;
  13.  
  14. 1.4
  15. date     93.01.10.15.07.57;  author death;  state Exp;
  16. branches ;
  17. next     1.3;
  18.  
  19. 1.3
  20. date     92.07.26.13.58.16;  author death;  state Exp;
  21. branches ;
  22. next     1.2;
  23.  
  24. 1.2
  25. date     92.04.05.22.52.03;  author death;  state Exp;
  26. branches ;
  27. next     1.1;
  28.  
  29. 1.1
  30. date     92.03.29.12.19.01;  author death;  state Exp;
  31. branches ;
  32. next     ;
  33.  
  34.  
  35. desc
  36. @This is the documentation for this early stage of the file object.
  37. @
  38.  
  39.  
  40. 1.5
  41. log
  42. @Sun Apr  4 23:44:30 PDT 1993
  43. @
  44. text
  45. @{\rtf0\ansi{\fonttbl\f0\fnil Palatino-Roman;\f1\ftech Symbol;\f2\fnil Times-Roman;\f4\fmodern Courier;\f3\fnil NewCenturySchlbk-Roman;}
  46. \paperw14520
  47. \paperh12580
  48. \margl120
  49. \margr0
  50. {\colortbl\red0\green0\blue0;}
  51. \pard\tx5700\tx11360\f0\b0\i0\ul0\fs24 $Revision: 1.4 $    $Author: death $    $Date: 93/01/10 15:07:57 $\
  52.  
  53. \pard \
  54.  
  55. \pard\tx3120\tx3620\tx4120\fs16\li2620 \
  56.  
  57. \fs28 \
  58.  
  59. \fs16 \
  60.  
  61. \fs28 \
  62.  
  63. \fs16 \
  64.  
  65. \pard\b\li1100 \
  66. \
  67. \
  68. \
  69.  
  70. \fs36 File\
  71.  
  72. \fs16 \
  73.  
  74. \pard\tx7140\b0\fs28\li2100 INHERITS FROM    Object\
  75.  
  76. \fs16 \
  77.  
  78. \fs28 DECLARED IN    File.h\
  79.  
  80. \fs16 \
  81. \
  82. \
  83.  
  84. \fs28 CLASS DESCRIPTION\
  85.  
  86. \fs16 \
  87.  
  88. \pard\tx3120\tx3620\tx4120\fs28\li2620 The File class can be used to open a file, read information from it, write information to it, and move around within it.  These facilities are, however, generic and not very rich in features.  Therefore, most commonly, specialized classes will be subclassed from it.\
  89.  
  90. \fs16 \
  91.  
  92. \fs28 After allocating a File object, one can ask it to open a particular file in the file system (this initalizes the object).  Since a File object can work with a single file, all messages directed at it will affect the file it has opened.  If asked to open a second file while it has one opened, the File object will return an error.  Closing the File will free the object.\
  93.  
  94. \fs16 \
  95.  
  96. \fs28 An open file in a File object has a current position, which is where any reading or writing can occurr.  Reading or writing can occur in byte sized, or arbitrarily sized chunks.  One can move the current position forward or backward by a specified number of bytes, or to an absolute position in the file.  Writing at the end of the file will increase the file's size.  All these methods that manipultate the file's contents return ErrorInfo objects when errors occurr.\
  97.  
  98. \fs16 \
  99.  
  100. \fs28 One can also obtain certain information about the File, including the full pathname, just the file name, or just the basename of the file it has opened, and its total size.\
  101.  
  102. \fs16 \
  103.  
  104. \b\i\fs28 This is 'beta', in so far as all the things described here are not implemented, and nothing is set in stone.\
  105. NOTE that methods return Reply objects, not plain-jane id's as suggested here!
  106. \b0\i0 \
  107. \
  108.  
  109. \fs16 \
  110.  
  111. \pard\tx7140\li2100 \
  112. \
  113.  
  114. \fs28 INSTANCE VARIABLES\
  115.  
  116. \fs16 \
  117.  
  118. \pard\tx7140\tx10180\tx10680\i\fs28\fi-4540\li7140 Inherited from Object
  119. \i0     Class    isa;\
  120.  
  121. \fs16 \
  122.  
  123. \i\fs28 Declared in File
  124. \i0     Cstring    fileName;\
  125.     long int    accessType;\
  126.     FILE*    theFile;\
  127.     Integer    state;\
  128.  
  129. \fs16 \
  130.  
  131. \fs28 fileName     The full pathname of the file being opened\
  132.  
  133. \fs16 \
  134.  
  135. \fs28 accessType     Indicates what kind of file access we are doing\
  136.  
  137. \fs16 \
  138.  
  139. \fs28 theFile     The file that the object makes use of.\
  140.  
  141. \fs16 \
  142.  
  143. \fs28 state    A flag indicating what 'state' the file is in.\
  144.  
  145. \pard\tx7140\fs16\li2100 \
  146. \
  147. \
  148.  
  149. \fs28 METHOD TYPES\
  150.  
  151. \fs16 \
  152.  
  153. \pard\tx7140\tx10180\tx10680\fs28\fi-4540\li7140 Creating/Initializing, and Freeing    
  154. \f1 - 
  155. \f0 openFile:For:\
  156.  
  157. \pard\tx10180\tx10680\f1\fi-520\li7660 - 
  158. \f0 openFile:\
  159.  
  160. \f1 - 
  161. \f0 closeFile\
  162.  
  163. \pard\tx7140\tx10180\tx10680\fs16\fi-4540\li7140 \
  164.  
  165. \fs28 Accessing info about the file name    
  166. \f1 - 
  167. \f0 getPathname\
  168.  
  169. \pard\tx10180\tx10680\f1\fi-520\li7660 - 
  170. \f2 getPath
  171. \f1 \
  172. \f0 getFilename \
  173.  
  174. \f1 - 
  175. \f0 getBasename\
  176.  
  177. \f1 - 
  178. \f0 getExtension\
  179.  
  180. \pard\tx7140\tx10180\tx10680\fs16\fi-4540\li7140 \
  181.  
  182. \fs28 Accessing info about the file state    
  183. \f1 - 
  184. \f0 getCurrentPosition\
  185.  
  186. \fs16 \
  187.  
  188. \fs28 Changing position in the file    
  189. \f1 - 
  190. \f0 moveTo:\
  191.  
  192. \pard\tx10180\tx10680\f1\fi-520\li7660 - 
  193. \f0 advanceBytes:\
  194.  
  195. \f1 - 
  196. \f0 backupBytes:\
  197.  
  198. \pard\tx7140\tx10180\tx10680\fs16\fi-4540\li7140 \
  199.  
  200. \fs28 Performing I/O on the file    
  201. \f1 - 
  202. \f0 readByte\
  203.  
  204. \pard\tx10180\tx10680\f1\fi-520\li7660 - 
  205. \f0 writeByte:\
  206.  
  207. \f1 - 
  208. \f0 read:bytesInto:retrieving:\
  209.  
  210. \f1 - 
  211. \f0 write:bytesFrom:writing:\
  212.  
  213. \pard\tx7140\fs16\li2100 \
  214. \
  215. \
  216.  
  217. \fs28 CLASS METHODS\
  218.  
  219. \fs16 \
  220.  
  221. \b \
  222.  
  223. \b0\fs28 None\
  224.  
  225. \pard\tx3120\tx3620\tx4120\fs16\li2620 \
  226.  
  227. \pard\tx7140\li2100 \
  228. \
  229.  
  230. \fs28 INSTANCE METHODS\
  231.  
  232. \fs16 \
  233.  
  234. \b \
  235.  
  236. \fs28 advanceBytes:\
  237.  
  238. \pard\f1\b0\fi-1020\li3620 - 
  239. \f0 (id) 
  240. \b advanceBytes: 
  241. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\b0\fi-1020\li3620 (FilePos
  242. \pard\fi-1020\li3620 Delta
  243. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620 ) 
  244. \i byteLoc
  245. \pard\b\i0\fi-1020\li3620 \
  246.  
  247. \fs16 \
  248.  
  249. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Moves the current position in the file forward 
  250. \i byteLoc
  251. \i0  number of bytes.  If an attempt is made to move beyond the end of the file, the current position is not moved, and an error is returned.\
  252.  
  253. \fs16 \
  254.  
  255. \pard\tx7140\b\li2100 \
  256.  
  257. \fs28 backupBytes:\
  258.  
  259. \pard\f1\b0\fi-1020\li3620 - 
  260. \f0 (id) 
  261. \b backupBytes: 
  262. \b0 (FilePosDelta) 
  263. \i byteLoc
  264. \b\i0 \
  265.  
  266. \fs16 \
  267.  
  268. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Moves the current position backwards 
  269. \i byteLoc
  270. \i0  number of bytes.  If one attempts to back up beyond the beginning of the file, and error is generated, and the current position is not moved.\
  271.  
  272. \pard\tx7140\fs16\li2100 \
  273.  
  274. \b \
  275.  
  276. \fs28 closeFile
  277. \b0 \
  278.  
  279. \pard\fi-1020\li3620 - 
  280. \b closeFile\
  281.  
  282. \fs16 \
  283.  
  284. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Closes the files, disposes of the instance values of the method and frees the object.\
  285.  
  286. \fs16 \
  287.  
  288. \pard\tx7140\b\li2100 \
  289.  
  290. \fs28 fileSize\
  291.  
  292. \pard\f1\b0\fi-1020\li3620 - 
  293. \f0 (id) 
  294. \b fileSize\
  295.  
  296. \fs16 \
  297.  
  298. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns the size of the file in a Reply object.  Gads. this means one has to know that the\
  299. underlying data type is a unsigned long.....\
  300.  
  301. \fs16 \
  302.  
  303. \pard\tx7140\b\li2100 \
  304.  
  305. \fs28 getBasename\
  306.  
  307. \pard\f1\b0\fi-1020\li3620 - 
  308. \f0 (Cstring) 
  309. \b getBasename\
  310.  
  311. \fs16 \
  312.  
  313. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns the name of the file without a path or an extension.  Thus,  if the file name is 
  314. \f4 /usr/djb/super.eps
  315. \f0  this will return 
  316. \f4 super
  317. \f0 . The string that is generated must be disposed by the caller.\
  318.  
  319. \fs16 \
  320.  
  321. \pard\tx7140\b\li2100 \
  322.  
  323. \fs28 getCurrentPosition\
  324.  
  325. \pard\f1\b0\fi-1020\li3620 - 
  326. \f0 (F
  327. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620 ilePos
  328. \pard\fi-1020\li3620 ) 
  329. \b getCurrentPosition\
  330.  
  331. \fs16 \
  332.  
  333. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 This returns the position in the file as a byte count.\
  334.  
  335. \fs16 \
  336.  
  337. \pard\tx7140\b\li2100 \
  338.  
  339. \fs28 getDirectory\
  340.  
  341. \pard\f1\b0\fi-1020\li3620 - 
  342. \f0 (Cstring) 
  343. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\b\fc0 getDirectory
  344. \pard\fi-1020\li3620 \
  345.  
  346. \fs16 \
  347.  
  348. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns the path to the file, without including the file name itself.  Note that it does include the final / in the pathname (e.g. 
  349. \f4 /usr/djb/super.eps
  350. \f0  returns 
  351. \f4 /usr/djb/
  352. \f0 ). The string that is generated must be disposed by the caller.\
  353.  
  354. \fs16 \
  355.  
  356. \pard\tx7140\b\li2100 \
  357.  
  358. \fs28 getExtension\
  359.  
  360. \pard\f1\b0\fi-1020\li3620 - 
  361. \f0 (Cstring) 
  362. \b getExtension\
  363.  
  364. \fs16 \
  365.  
  366. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Like getFilename, but this returns only the extension of the file name Thus, the file 
  367. \f4 /usr/djb/super.eps
  368. \f0  returns merely 
  369. \f4 eps
  370. \f0 .The string that is generated must be disposed by the caller.\
  371.  
  372. \fs16 \
  373.  
  374. \pard\tx7140\b\li2100 \
  375.  
  376. \fs28 getFilename\
  377.  
  378. \pard\f1\b0\fi-1020\li3620 - 
  379. \f0 (Cstring) 
  380. \b getFilename\
  381.  
  382. \fs16 \
  383.  
  384. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns a new string that contains the name of the file without its full path.  E.g. if the full name is 
  385. \f4 /usr/djb/super.eps
  386. \f0 , this returns just 
  387. \f4 super.eps
  388. \f0 .The string that is generated must be disposed by the caller.\
  389.  
  390. \fs16 \
  391.  
  392. \pard\tx7140\b\li2100 \
  393.  
  394. \fs28 getPathname\
  395.  
  396. \pard\f1\b0\fi-1020\li3620 - 
  397. \f0 (Cstring) 
  398. \b getPathname\
  399.  
  400. \fs16 \
  401.  
  402. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns the full pathname to the file the object has open.  This provides a new string which the recipient is responsible for disposing.\
  403.  
  404. \fs16 \
  405.  
  406. \pard\tx7140\b\li2100 \
  407.  
  408. \fs28 initFile:For:\
  409.  
  410. \pard\b0\fi-1020\li3620 - (id) 
  411. \b initFile: 
  412. \b0 (const char *) 
  413. \i filename
  414. \b\i0  For: 
  415. \b0 (long int) 
  416. \i operation
  417. \b\i0 \
  418.  
  419. \fs16 \
  420.  
  421. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 This acts identically to openFile:For:, below, and is provided merely to remain compatabile with what NeXT says one should provide (init menthods that start with the characters `init').\
  422.  
  423. \pard\tx7140\fs16\li2100 \
  424.  
  425. \b \
  426.  
  427. \fs28 moveTo:\
  428.  
  429. \pard\f1\b0\fi-1020\li3620 - 
  430. \f0 (id) 
  431. \b moveTo:
  432. \b0  (FilePos) 
  433. \i byteLoc
  434. \b\i0 \
  435.  
  436. \fs16 \
  437.  
  438. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Moves to the specified location in the file.  If the 
  439. \i byteLoc
  440. \i0  is out of range, an error is returned.  If the file access method is FILE_APPEND, then this method will always return an error.  If one tries to move beyond the end of a file, and error is generated (note that because FilePos is an unsigned quantity, one can not move past the beginning).\
  441.  
  442. \fs16 \
  443.  
  444. \pard\tx7140\b\li2100 \
  445.  
  446. \fs28 openFile:For:\
  447.  
  448. \pard\b0\fi-1020\li3620 - (id) 
  449. \b openFile: 
  450. \b0 (
  451. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620 const char *
  452. \pard\fi-1020\li3620 ) 
  453. \i filename
  454. \b\i0  For: 
  455. \b0 (long int) 
  456. \i operation
  457. \b\i0 \
  458.  
  459. \fs16 \
  460.  
  461. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Creates a new File object, opening the file 
  462. \i filename
  463. \i0 , if possible, for the specified operation.  The 
  464. \i operation
  465. \i0  can be one of FILE_READ, FILE_WRITE, FILE_READWRITE and FILE_APPEND.  In all cases save FileAPPEND, the file is opened with the current position at the beginning of the file.  In the case of FileAPPEND, it is at the end of the file.\
  466.  
  467. \pard\tx7140\fs16\li2100 \
  468.  
  469. \b \
  470.  
  471. \fs28 openFile:\
  472.  
  473. \pard\b0\fi-1020\li3620 - (id)
  474. \b  openFile: 
  475. \b0 (
  476. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620 const char *
  477. \pard\fi-1020\li3620 ) 
  478. \i filename
  479. \b\i0 \
  480.  
  481. \fs16 \
  482.  
  483. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Calls 
  484. \b openFile:For:
  485. \b0  using FileREADWROTE for the 
  486. \i operation
  487. \i0  parameter.  This, then, simply serves as a more common case wrapper around the preceeding method.\
  488.  
  489. \pard\tx7140\fs16\li2100 \
  490.  
  491. \b \
  492.  
  493. \fs28 readByte:\
  494.  
  495. \pard\f1\b0\fi-1020\li3620 - 
  496. \f0 (id) 
  497. \b readByte:
  498. \b0  (byte*) 
  499. \i theByte
  500. \b\i0 \
  501.  
  502. \fs16 \
  503.  
  504. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Reads a byte from the file, and returns it in theByte.  If an error occurrs, including detection of EOF and reads during FILE_WRITE or FILE_APPEND, an error is returned.\
  505.  
  506. \fs16 \
  507.  
  508. \pard\tx7140\b\li2100 \
  509.  
  510. \fs28 read:bytesInto:retrieving:\
  511.  
  512. \pard\f1\b0\fi-1020\li3620 - 
  513. \f0 (id) 
  514. \b read:
  515. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\b0\fi-1020\li3620  (
  516. \pard\fi-1020\li3620 long int
  517. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620 ) 
  518. \pard\i\fi-1020\li3620 numBytes 
  519. \b\i0 bytesInto:
  520. \b0  (byte*) 
  521. \i buffer 
  522. \b\i0 retrieving: 
  523. \b0 (long int*) 
  524. \i bytesFound
  525. \b\i0 \
  526.  
  527. \fs16 \
  528.  
  529. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 This reads up to 
  530. \i numBytes
  531. \i0  into 
  532. \i buffer
  533. \i0  from the file.  If 
  534. \i buffer
  535. \i0  is not of the proper size, the results are unpredictable.  If any errors are encountered while reading, no further reading is done, and an error is returned.  In all cases, the number of bytes actually read is returned in 
  536. \i bytesFound.
  537. \i0 \
  538.  
  539. \fs16 \
  540.  
  541. \pard\tx7140\b\li2100 \
  542.  
  543. \fs28 writeByte:\
  544.  
  545. \pard\f1\b0\fi-1020\li3620 - 
  546. \f0 (id) 
  547. \b writeByte:
  548. \b0  (byte) 
  549. \i theByte
  550. \b\i0 \
  551.  
  552. \fs16 \
  553.  
  554. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 writes a byte to the file at the current position, and advances the position one byte. If an error occurs, including writing during FILE_READ, an error is returned.\
  555.  
  556. \fs16 \
  557.  
  558. \pard\tx7140\b\li2100 \
  559.  
  560. \fs28 write:bytesFrom:writing:\
  561.  
  562. \pard\f1\b0\fi-1020\li3620 - 
  563. \f0 (id) 
  564. \b write:
  565. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\b0\fi-1020\li3620  (
  566. \pard\fi-1020\li3620 long int
  567. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620 ) 
  568. \pard\i\fi-1020\li3620 numBytes 
  569. \b\i0 bytesFrom:
  570. \b0  (byte*) 
  571. \i buffer 
  572. \b\i0 writing: 
  573. \b0 (long int*) 
  574. \i bytesWrote
  575. \b\i0 \
  576.  
  577. \fs16 \
  578.  
  579. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 This writes up to 
  580. \i numBytes
  581. \i0  from 
  582. \i buffer
  583. \i0  into the file.  If 
  584. \i buffer
  585. \i0  is not of the proper size, the results are unpredictable.  If any errors are encountered while writing, no further writing is done, and an error is returned.  In all cases, the number of bytes actually written is returned in 
  586. \i bytesWrote.
  587. \i0 \
  588.  
  589. \fs16 \
  590.  
  591. \pard\tx7140\b\li2100 \
  592.  
  593. \b0 \
  594.  
  595. \fs28 BUGS AND PROBLEMS\
  596.  
  597. \fs16 \
  598.  
  599. \pard\tx3120\tx3620\tx4120\fs28\li2620 I suspect a lot of this will break when things other than plain old files are added.\
  600. there should probably be a free method corresponding to the close.\
  601. There should be a FILE_MODIFY and a FILE_READMODIFY.  These are the same as write, except that write creates or clears a file to start with.  Perhaps pick better terms overall.  Maybe FILE_NEWWRITE, FILE_NEWREADWRITE, FILE_WRITE, FILE_READWRITE.  ? That would not be backwared compatable.  But this isn't 'final' anyway.  Tough luck on the macpaint and macpict converters! =)  Also, the error diagnostics from the open routine should reflect error codes more accurately (tried to open, but it wasn't there!)\
  602.  
  603. \fs16 \
  604.  
  605. \pard\tx7140\li2100 \
  606. \
  607.  
  608. \fs28 ENHANCEMENT IDEAS\
  609.  
  610. \fs16 \
  611.  
  612. \pard\tx3120\tx3620\tx4120\fs28\li2620 Add support for other types of streams\
  613.  
  614. \fs16 \
  615.  
  616. \pard\tx7140\li2100 \
  617. \
  618.  
  619. \fs28 CONSTANTS AND DEFINED TYPES\
  620.  
  621. \fs16 \
  622.  
  623. \pard\tx6480\tx7180\fs24\fi-3860\li6480 /* Types of ways to access a file */\
  624. #define FILE_READ    0\
  625. #define FILE_WRITE    1\
  626. #define FILE_READWRITE    2\
  627. #define FILE_APPEND    3\
  628. \
  629. FilePos    An unsigned number for specifying a byte position in a file.\
  630. FilePosDelta    An unsigned number for specifying a change in position in a file.\
  631.  
  632. \pard\tx3120\tx3620\tx4120\fs16\li2620 \
  633.  
  634. \pard\tx7140\li2100 \
  635. \
  636.  
  637. \fs28 MODIFICATION HISTORY\
  638.  
  639. \fs16 \
  640.  
  641. \pard\tx3120\tx3620\tx4120\fs28\li2620 $Log:    File.rtf,v $
  642. Revision 1.4  93/01/10  15:07:57  death
  643. Sun Jan 10 15:07:56 PST 1993
  644.  
  645. Revision 1.3  92/07/26  13:58:16  death
  646. probably no changes here (sigh).
  647. Revision 1.2  92/04/05  22:52:03  deathReflects  some of the miscelaneous revisions that have taken place.  Last version of version 1.Revision 1.1  92/03/29  12:19:01  deathInitial revision
  648. \fi-20\li3120 \
  649.  
  650. }
  651. @
  652.  
  653.  
  654. 1.4
  655. log
  656. @Sun Jan 10 15:07:56 PST 1993
  657. @
  658. text
  659. @d7 1
  660. a7 1
  661. \pard\tx5700\tx11360\f0\b0\i0\ul0\fs24 $Revision: 1.3 $    $Author: death $    $Date: 92/07/26 13:58:16 $\
  662. d599 3
  663. @
  664.  
  665.  
  666. 1.3
  667. log
  668. @probably no changes here (sigh).
  669. @
  670. text
  671. @d7 1
  672. a7 1
  673. \pard\tx5700\tx11360\f0\b0\i0\ul0\fs24 $Revision: 1.2 $    $Author: death $    $Date: 92/04/05 22:52:03 $\
  674. d598 4
  675. a601 1
  676. \pard\tx3120\tx3620\tx4120\fs28\li2620 $Log:    File.rtf,v $Revision 1.2  92/04/05  22:52:03  deathReflects  some of the miscelaneous revisions that have taken place.  Last version of version 1.Revision 1.1  92/03/29  12:19:01  deathInitial revision
  677. @
  678.  
  679.  
  680. 1.2
  681. log
  682. @Reflects  some of the miscelaneous revisions that have taken place.  Last version of version 1.
  683. @
  684. text
  685. @d1 1
  686. a1 1
  687. {\rtf0\ansi{\fonttbl\f0\fnil Palatino-Roman;\f1\ftech Symbol;\f3\fnil Times-Roman;\f4\fmodern Courier;\f2\fnil NewCenturySchlbk-Roman;}
  688. d7 1
  689. a7 1
  690. \pard\tx5700\tx11360\f0\b0\i0\ul0\fs24 $Revision: 1.1 $    $Author: death $    $Date: 92/03/29 12:19:01 $\
  691. d83 1
  692. d97 4
  693. d126 1
  694. a126 1
  695. \f3 getPath
  696. d598 1
  697. a598 1
  698. \pard\tx3120\tx3620\tx4120\fs28\li2620 $Log:    File.rtf,v $Revision 1.1  92/03/29  12:19:01  deathInitial revision
  699. @
  700.  
  701.  
  702. 1.1
  703. log
  704. @Initial revision
  705. @
  706. text
  707. @d6 2
  708. a7 1
  709. \pard\tx5700\tx11360\f0\b0\i0\ul0\fs24 $Revision:$    $Author:$    $Date:$\
  710. a187 57
  711. \fs28 openFile:For:\
  712.  
  713. \pard\b0\fi-1020\li3620 - (id) 
  714. \b openFile: 
  715. \b0 (Cstring) 
  716. \i filename
  717. \b\i0  For: 
  718. \b0 (long int) 
  719. \i operation
  720. \b\i0 \
  721.  
  722. \fs16 \
  723.  
  724. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Creates a new File object, opening the file 
  725. \i filename
  726. \i0 , if possible, for the specified operation.  The 
  727. \i operation
  728. \i0  can be one of FILE_READ, FILE_WRITE, FILE_READWRITE and FILE_APPEND.  In all cases save FileAPPEND, the file is opened with the current position at the beginning of the file.  In the case of FileAPPEND, it is at the end of the file.\
  729.  
  730. \pard\tx7140\fs16\li2100 \
  731.  
  732. \b \
  733.  
  734. \fs28 openFile:\
  735.  
  736. \pard\b0\fi-1020\li3620 - (id)
  737. \b  openFile: 
  738. \b0 (Cstring) 
  739. \i filename
  740. \b\i0 \
  741.  
  742. \fs16 \
  743.  
  744. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Calls 
  745. \b openFile:For:
  746. \b0  using FileREADWROTE for the 
  747. \i operation
  748. \i0  parameter.  This, then, simply serves as a more common case wrapper around the preceeding method.\
  749.  
  750. \pard\tx7140\fs16\li2100 \
  751.  
  752. \b \
  753.  
  754. \fs28 closeFile
  755. \b0 \
  756.  
  757. \pard\fi-1020\li3620 - 
  758. \b closeFile\
  759.  
  760. \fs16 \
  761.  
  762. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Closes the files, disposes of the instance values of the method and frees the object.\
  763.  
  764. \pard\tx7140\fs16\li2100 \
  765.  
  766. \b \
  767.  
  768. d224 10
  769. d236 4
  770. d291 19
  771. d346 1
  772. a346 1
  773. \fs28 getPath\
  774. d350 1
  775. a350 1
  776. \b getPath\
  777. d354 1
  778. a354 5
  779. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns the path to the file, without including the file name itself.  Note that it does include the final / in the pathname (e.g. 
  780. \f4 /usr/djb/super.eps
  781. \f0  returns 
  782. \f4 /usr/djb/
  783. \f0 ). The string that is generated must be disposed by the caller.\
  784. d360 1
  785. a360 1
  786. \fs28 getPathname\
  787. d362 8
  788. a369 3
  789. \pard\f1\b0\fi-1020\li3620 - 
  790. \f0 (Cstring) 
  791. \b getPathname\
  792. d373 1
  793. a373 1
  794. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns the full pathname to the file the object has open.  This provides a new string which the recipient is responsible for disposing.\
  795. d375 1
  796. a375 1
  797. \fs16 \
  798. d377 1
  799. a377 1
  800. \pard\tx7140\b\li2100 \
  801. d398 47
  802. d552 2
  803. d593 1
  804. a593 1
  805. \pard\tx3120\tx3620\tx4120\fs28\li2620 $Log:$
  806. @
  807.